#include <myheader.h>
#include <stddef.h>//包含size_t的定义
//函数
void copy_file(const char *src, const char *dest){
    //打开文件流,只读形式
    FILE *src_fp = fopen(src, "rb");
    //错误处理
    ERROR_CHECK(src_fp,NULL,"src_fp");

    //打开文件流,写形式
    FILE *dest_fp = fopen(dest,"wb");
    //错误处理
    ERROR_CHECK(dest_fp,NULL,"dest_fp");
    

    char buff[1024];
    size_t readbytes;
    //进行复制
    while((readbytes = fread(buff,1,sizeof(buff),src_fp)) > 0){
        size_t writebytes =  fwrite(buff,1,readbytes,dest_fp);
        if(writebytes < readbytes){
            perror("写入文件错误！\n");
            fclose(dest_fp);
            fclose(src_fp);
        }
    }
    //对读写文件进行错误处理
    if(ferror(dest_fp)){
        perror("文件写入发生错误\n");
    }
    if(ferror(src_fp)){
        perror("文件读入发生错误！\n");
    }
    //关闭文件流
    fclose(dest_fp);
    fclose(src_fp);   
    
}
/*usage: */
int main(int argc, char *argv[]){
    ARGC_CHECK(argc,3);
    copy_file(argv[1],argv[2]);

    return 0;
}
